<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>JCSDK C++ API Reference: JCMediaDevice类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">JCSDK C++ API Reference
   &#160;<span id="projectnumber">2.3.3</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pub-attribs">Public 属性</a> &#124;
<a href="class_j_c_media_device-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">JCMediaDevice类 参考<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html">设备模块</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_j_c_media_device_8h_source.html">JCMediaDevice.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a9369379c0d753bf34923ab2618ecb90e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a9369379c0d753bf34923ab2618ecb90e">startCameraVideo</a> (void *view, <a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ga3d4e0c37a074d813ff1701f250b3831d">JCMediaDeviceRenderMode</a> mode)=0</td></tr>
<tr class="separator:a9369379c0d753bf34923ab2618ecb90e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a148a565d8a6204ca69f3d45c203f22e3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a148a565d8a6204ca69f3d45c203f22e3">startVideo</a> (void *view, const char *videoSource, <a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ga3d4e0c37a074d813ff1701f250b3831d">JCMediaDeviceRenderMode</a> mode)=0</td></tr>
<tr class="separator:a148a565d8a6204ca69f3d45c203f22e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2db87561046eedda073d2fd52b8adce8"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a2db87561046eedda073d2fd52b8adce8">stopVideo</a> (<a class="el" href="class_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> *canvas)=0</td></tr>
<tr class="separator:a2db87561046eedda073d2fd52b8adce8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e5dbd693aa7d245377e78cb78902018"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a3e5dbd693aa7d245377e78cb78902018">startAudio</a> ()=0</td></tr>
<tr class="separator:a3e5dbd693aa7d245377e78cb78902018"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a007283dc73188577ae32b50849d3d3fd"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a007283dc73188577ae32b50849d3d3fd">stopAudio</a> ()=0</td></tr>
<tr class="separator:a007283dc73188577ae32b50849d3d3fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8980c035521b9c5c20afa34fad23293e"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a8980c035521b9c5c20afa34fad23293e">startCamera</a> ()=0</td></tr>
<tr class="separator:a8980c035521b9c5c20afa34fad23293e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a201fd2352117c7fbdc03ef10837fc701"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a201fd2352117c7fbdc03ef10837fc701">stopCamera</a> ()=0</td></tr>
<tr class="separator:a201fd2352117c7fbdc03ef10837fc701"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0716deb7c816c605444f2bb3202e9ef5"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a0716deb7c816c605444f2bb3202e9ef5">switchCamera</a> (<a class="el" href="class_j_c_media_device_camera.html">JCMediaDeviceCamera</a> camera)=0</td></tr>
<tr class="separator:a0716deb7c816c605444f2bb3202e9ef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ec180f6fc51367007b854dd0bc2866b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a2ec180f6fc51367007b854dd0bc2866b">setCameraProperty</a> (int width, int height, int framerate)=0</td></tr>
<tr class="separator:a2ec180f6fc51367007b854dd0bc2866b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03f381b320fa23d0476207a7d00e0f34"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a03f381b320fa23d0476207a7d00e0f34">setScreenCaptureProperty</a> (int width, int height, int framerate)=0</td></tr>
<tr class="separator:a03f381b320fa23d0476207a7d00e0f34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7606984cdfd5de27d53399304eee67bf"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a7606984cdfd5de27d53399304eee67bf">startVideoFile</a> ()=0</td></tr>
<tr class="separator:a7606984cdfd5de27d53399304eee67bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ba1260942cdc3a13cb4823ca2c5c4fe"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a3ba1260942cdc3a13cb4823ca2c5c4fe">setVideoFileFrame</a> (BYTE *srcFrame, <a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ga2c6c5198086db6570f08f4da6d23bf2a">JCMediaDeviceVideoPixelFormat</a> format, int width, int height)=0</td></tr>
<tr class="separator:a3ba1260942cdc3a13cb4823ca2c5c4fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c6ff0dba1b9f665e530250d01a938fc"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a9c6ff0dba1b9f665e530250d01a938fc">stopVideoFile</a> ()=0</td></tr>
<tr class="separator:a9c6ff0dba1b9f665e530250d01a938fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81003ef7a37a5bdfb923b3912f951bd0"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a81003ef7a37a5bdfb923b3912f951bd0">getVideoFileId</a> ()=0</td></tr>
<tr class="separator:a81003ef7a37a5bdfb923b3912f951bd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac182570741d286e0939a504f6b0b1dd5"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#ac182570741d286e0939a504f6b0b1dd5">isCameraOpen</a> ()=0</td></tr>
<tr class="separator:ac182570741d286e0939a504f6b0b1dd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ca8412131b75ec61ad80d0f030c5b9c"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a3ca8412131b75ec61ad80d0f030c5b9c">isVideoFileOpen</a> ()=0</td></tr>
<tr class="separator:a3ca8412131b75ec61ad80d0f030c5b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb427f7249ef1e384b1a910c90c31190"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_j_c_media_device_camera.html">JCMediaDeviceCamera</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#acb427f7249ef1e384b1a910c90c31190">getCamera</a> ()=0</td></tr>
<tr class="separator:acb427f7249ef1e384b1a910c90c31190"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5d7b21bf998890a10bbf4ea5c3984da"><td class="memItemLeft" align="right" valign="top">virtual std::list&lt; <a class="el" href="class_j_c_media_device_camera.html">JCMediaDeviceCamera</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#af5d7b21bf998890a10bbf4ea5c3984da">getCameras</a> ()=0</td></tr>
<tr class="separator:af5d7b21bf998890a10bbf4ea5c3984da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab177fc54d666d727ece18588268fd203"><td class="memItemLeft" align="right" valign="top">virtual std::list&lt; <a class="el" href="class_j_c_media_device_audio.html">JCMediaDeviceAudio</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#ab177fc54d666d727ece18588268fd203">getAudioInputs</a> ()=0</td></tr>
<tr class="separator:ab177fc54d666d727ece18588268fd203"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72ba20f63202cbc61bf2cfc8170045b3"><td class="memItemLeft" align="right" valign="top">virtual std::list&lt; <a class="el" href="class_j_c_media_device_audio.html">JCMediaDeviceAudio</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a72ba20f63202cbc61bf2cfc8170045b3">getAudioOutputs</a> ()=0</td></tr>
<tr class="separator:a72ba20f63202cbc61bf2cfc8170045b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec338b2eea709884722f7c426c924653"><td class="memItemLeft" align="right" valign="top">virtual std::list&lt; <a class="el" href="class_j_c_media_device_window.html">JCMediaDeviceWindow</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#aec338b2eea709884722f7c426c924653">getWindows</a> ()=0</td></tr>
<tr class="separator:aec338b2eea709884722f7c426c924653"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cbda493ef14c4b97ff022948bb15bf1"><td class="memItemLeft" align="right" valign="top">virtual std::list&lt; <a class="el" href="class_j_c_media_device_window.html">JCMediaDeviceWindow</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a8cbda493ef14c4b97ff022948bb15bf1">getDesktops</a> ()=0</td></tr>
<tr class="separator:a8cbda493ef14c4b97ff022948bb15bf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58437ca0b56ea8a5741411fb53713845"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a58437ca0b56ea8a5741411fb53713845">isAudioStart</a> ()=0</td></tr>
<tr class="separator:a58437ca0b56ea8a5741411fb53713845"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9126bc9409520132bc21abfebec07c8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_j_c_media_device_audio_param.html">JCMediaDeviceAudioParam</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#ac9126bc9409520132bc21abfebec07c8">getAudioParam</a> ()=0</td></tr>
<tr class="separator:ac9126bc9409520132bc21abfebec07c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public 属性</h2></td></tr>
<tr class="memitem:adb6f8b7d45ef32a45cfa5b8f70d55ccb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_j_c_media_device_camera.html">JCMediaDeviceCamera</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#adb6f8b7d45ef32a45cfa5b8f70d55ccb">defaultCamera</a></td></tr>
<tr class="separator:adb6f8b7d45ef32a45cfa5b8f70d55ccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b7f9572f2653dafb5c69c96f90b5ba5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_j_c_media_device_audio.html">JCMediaDeviceAudio</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a4b7f9572f2653dafb5c69c96f90b5ba5">audioIntput</a></td></tr>
<tr class="separator:a4b7f9572f2653dafb5c69c96f90b5ba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa580c277cc88cf5707c2d5bcd71ab464"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_j_c_media_device_audio.html">JCMediaDeviceAudio</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#aa580c277cc88cf5707c2d5bcd71ab464">audioOutput</a></td></tr>
<tr class="separator:aa580c277cc88cf5707c2d5bcd71ab464"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cb2c591dc1ab517a2e40a0465dfbd54"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_j_c_media_device_window.html">JCMediaDeviceWindow</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_j_c_media_device.html#a6cb2c591dc1ab517a2e40a0465dfbd54">screenshareWindow</a></td></tr>
<tr class="separator:a6cb2c591dc1ab517a2e40a0465dfbd54"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>用于管理设备 </p>
</div><h2 class="groupheader">成员函数说明</h2>
<a id="ab177fc54d666d727ece18588268fd203"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab177fc54d666d727ece18588268fd203">&#9670;&nbsp;</a></span>getAudioInputs()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::list&lt;<a class="el" href="class_j_c_media_device_audio.html">JCMediaDeviceAudio</a>&gt;* JCMediaDevice::getAudioInputs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>获得当前音频输入设备</p>
<dl class="section return"><dt>返回</dt><dd>当前音频输入设备 </dd></dl>

</div>
</div>
<a id="a72ba20f63202cbc61bf2cfc8170045b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72ba20f63202cbc61bf2cfc8170045b3">&#9670;&nbsp;</a></span>getAudioOutputs()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::list&lt;<a class="el" href="class_j_c_media_device_audio.html">JCMediaDeviceAudio</a>&gt;* JCMediaDevice::getAudioOutputs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>获得当前音频输出设备</p>
<dl class="section return"><dt>返回</dt><dd>当前音频输出设备 </dd></dl>

</div>
</div>
<a id="ac9126bc9409520132bc21abfebec07c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9126bc9409520132bc21abfebec07c8">&#9670;&nbsp;</a></span>getAudioParam()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_j_c_media_device_audio_param.html">JCMediaDeviceAudioParam</a>* JCMediaDevice::getAudioParam </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>获得音频参数</p>
<dl class="section return"><dt>返回</dt><dd><a class="el" href="class_j_c_media_device_audio_param.html">JCMediaDeviceAudioParam</a> 音频参数 </dd></dl>

</div>
</div>
<a id="acb427f7249ef1e384b1a910c90c31190"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb427f7249ef1e384b1a910c90c31190">&#9670;&nbsp;</a></span>getCamera()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_j_c_media_device_camera.html">JCMediaDeviceCamera</a> JCMediaDevice::getCamera </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>获取当前的摄像头</p>
<dl class="section return"><dt>返回</dt><dd><a class="el" href="class_j_c_media_device_camera.html">JCMediaDeviceCamera</a> 对象，当前摄像头 </dd></dl>

</div>
</div>
<a id="af5d7b21bf998890a10bbf4ea5c3984da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5d7b21bf998890a10bbf4ea5c3984da">&#9670;&nbsp;</a></span>getCameras()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::list&lt;<a class="el" href="class_j_c_media_device_camera.html">JCMediaDeviceCamera</a>&gt;* JCMediaDevice::getCameras </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>获取摄像头列表</p>
<dl class="section return"><dt>返回</dt><dd>摄像头列表 </dd></dl>

</div>
</div>
<a id="a8cbda493ef14c4b97ff022948bb15bf1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cbda493ef14c4b97ff022948bb15bf1">&#9670;&nbsp;</a></span>getDesktops()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::list&lt;<a class="el" href="class_j_c_media_device_window.html">JCMediaDeviceWindow</a>&gt;* JCMediaDevice::getDesktops </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>获得当前桌面列表</p>
<dl class="section return"><dt>返回</dt><dd>当前桌面列表 </dd></dl>

</div>
</div>
<a id="a81003ef7a37a5bdfb923b3912f951bd0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81003ef7a37a5bdfb923b3912f951bd0">&#9670;&nbsp;</a></span>getVideoFileId()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* JCMediaDevice::getVideoFileId </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>获取文件视频源渲染id</p>
<dl class="section return"><dt>返回</dt><dd>文件视频源渲染id </dd></dl>

</div>
</div>
<a id="aec338b2eea709884722f7c426c924653"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec338b2eea709884722f7c426c924653">&#9670;&nbsp;</a></span>getWindows()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::list&lt;<a class="el" href="class_j_c_media_device_window.html">JCMediaDeviceWindow</a>&gt;* JCMediaDevice::getWindows </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>获得当前窗口列表</p>
<dl class="section return"><dt>返回</dt><dd>当前窗口列表 </dd></dl>

</div>
</div>
<a id="a58437ca0b56ea8a5741411fb53713845"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58437ca0b56ea8a5741411fb53713845">&#9670;&nbsp;</a></span>isAudioStart()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool JCMediaDevice::isAudioStart </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>音频是否已打开</p>
<dl class="section return"><dt>返回</dt><dd>音频是否已打开<ul>
<li>true: 已打开</li>
<li>false: 未打开 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ac182570741d286e0939a504f6b0b1dd5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac182570741d286e0939a504f6b0b1dd5">&#9670;&nbsp;</a></span>isCameraOpen()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool JCMediaDevice::isCameraOpen </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>摄像头是否已打开</p>
<dl class="section return"><dt>返回</dt><dd>摄像头是否打开<ul>
<li>true: 已打开</li>
<li>false: 未打开 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a3ca8412131b75ec61ad80d0f030c5b9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ca8412131b75ec61ad80d0f030c5b9c">&#9670;&nbsp;</a></span>isVideoFileOpen()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool JCMediaDevice::isVideoFileOpen </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>文件视频源是否已开启</p>
<dl class="section return"><dt>返回</dt><dd>文件视频源是否已开启<ul>
<li>true: 已开启</li>
<li>false: 未开启 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a2ec180f6fc51367007b854dd0bc2866b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ec180f6fc51367007b854dd0bc2866b">&#9670;&nbsp;</a></span>setCameraProperty()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void JCMediaDevice::setCameraProperty </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>framerate</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>设置摄像头采集属性</p>
<p>在调用 <a class="el" href="class_j_c_call_item.html#a16fadea791640b31f32c6075f9233578">startSelfVideo</a> 方法或 <a class="el" href="class_j_c_media_channel_participant.html#a238fccab8cc09e1ef843a43aad4ffac9">startVideo</a> 方法开启自身视频渲染前设置即可生效</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">width</td><td>采集宽度，默认640 </td></tr>
    <tr><td class="paramname">height</td><td>采集高度，默认360 </td></tr>
    <tr><td class="paramname">frameRate</td><td>采集帧速率，默认24 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a03f381b320fa23d0476207a7d00e0f34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03f381b320fa23d0476207a7d00e0f34">&#9670;&nbsp;</a></span>setScreenCaptureProperty()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void JCMediaDevice::setScreenCaptureProperty </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>framerate</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>设置屏幕共享采集属性</p>
<p>在调用 <a class="el" href="class_j_c_media_channel.html#a8ad6d27084abf660aad7a7f84fd3b9e0">enableScreenOrWindowShare</a> 方法开启屏幕共享前设置即可生效</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">width</td><td>采集宽度，默认1280 </td></tr>
    <tr><td class="paramname">height</td><td>采集高度，默认720 </td></tr>
    <tr><td class="paramname">frameRate</td><td>采集帧速率，默认10 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3ba1260942cdc3a13cb4823ca2c5c4fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ba1260942cdc3a13cb4823ca2c5c4fe">&#9670;&nbsp;</a></span>setVideoFileFrame()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void JCMediaDevice::setVideoFileFrame </td>
          <td>(</td>
          <td class="paramtype">BYTE *&#160;</td>
          <td class="paramname"><em>srcFrame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ga2c6c5198086db6570f08f4da6d23bf2a">JCMediaDeviceVideoPixelFormat</a>&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>height</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>逐帧采集视频画面</p>
<p>调用此方法时要保证文件视频源已开启</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>画面二进制数据 </td></tr>
    <tr><td class="paramname">format</td><td><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga2c6c5198086db6570f08f4da6d23bf2aae05124d95aeb9a0e4d704a57fc6442f7">视频像素格式</a> </td></tr>
    <tr><td class="paramname">width</td><td>宽 </td></tr>
    <tr><td class="paramname">height</td><td>高 </td></tr>
    <tr><td class="paramname">angle</td><td>90 的倍数 </td></tr>
    <tr><td class="paramname">mirror</td><td>0 不镜像，1进行左右镜像 </td></tr>
    <tr><td class="paramname">keyFrame</td><td>是否为关键帧<ul>
<li>true: 关键帧</li>
<li>false: 不是关键帧 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3e5dbd693aa7d245377e78cb78902018"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e5dbd693aa7d245377e78cb78902018">&#9670;&nbsp;</a></span>startAudio()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool JCMediaDevice::startAudio </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>启动音频</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000005">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，在通话连接中或者加入频道成功时，内部会自动调用此方法来启动音频</dd></dl>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：正常执行调用流程</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a8980c035521b9c5c20afa34fad23293e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8980c035521b9c5c20afa34fad23293e">&#9670;&nbsp;</a></span>startCamera()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool JCMediaDevice::startCamera </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>开启摄像头</p>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：正常执行调用流程，存在以下两种场景：<ul>
<li>若调用此方法前摄像头已打开，不会收到通知</li>
<li>若调用此方法前摄像头未打开，会收到 <a class="el" href="class_j_c_media_device_callback.html#a2e1d495e5443274eba03c0962f6c338f">onCameraUpdate</a> 通知</li>
</ul>
</li>
<li>false：调用失败，不会收到通知 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a9369379c0d753bf34923ab2618ecb90e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9369379c0d753bf34923ab2618ecb90e">&#9670;&nbsp;</a></span>startCameraVideo()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a>* JCMediaDevice::startCameraVideo </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>view</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ga3d4e0c37a074d813ff1701f250b3831d">JCMediaDeviceRenderMode</a>&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>开始自身视频渲染</p>
<p>获取本端视频预览对象 <a class="el" href="class_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> ，通过此对象能获得视图用于UI显示</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，一对一通话建议使用 <a class="el" href="class_j_c_call_item.html#a16fadea791640b31f32c6075f9233578">startSelfVideo</a> 方法代替，频道建议使用 <a class="el" href="class_j_c_media_channel_participant.html#a238fccab8cc09e1ef843a43aad4ffac9">startVideo</a> 方法代替</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">renderType</td><td>渲染模式：<ul>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga3d4e0c37a074d813ff1701f250b3831da536c2612409e34fbf614a5f22a947f4b">JCMediaDeviceRenderModeFullScreen</a> : 铺满窗口</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga3d4e0c37a074d813ff1701f250b3831da2b7b398f7d45b52fc17d4d9c552ba1a2">JCMediaDeviceRenderModeFullContent</a> : 全图像显示，会有黑边</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga3d4e0c37a074d813ff1701f250b3831da23d50f1ef4ea132ce06adbf795cf89f3">JCMediaDeviceRenderModeFullAuto</a> : 自适应 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd><ul>
<li><a class="el" href="class_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> 对象：开始自身视频渲染成功</li>
<li>NULL：开始自身视频渲染失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a148a565d8a6204ca69f3d45c203f22e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a148a565d8a6204ca69f3d45c203f22e3">&#9670;&nbsp;</a></span>startVideo()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a>* JCMediaDevice::startVideo </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>view</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>videoSource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ga3d4e0c37a074d813ff1701f250b3831d">JCMediaDeviceRenderMode</a>&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>开始其他端的视频渲染</p>
<p>获取其他端的视频预览对象 <a class="el" href="class_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> ，通过此对象能获得视图用于UI显示</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，一对一通话建议使用 <a class="el" href="class_j_c_call_item.html#ac3ccc64bbb7ebebaa3ca3219b21d4ce9">startOtherVideo</a> 方法代替，频道建议使用 <a class="el" href="class_j_c_media_channel_participant.html#a238fccab8cc09e1ef843a43aad4ffac9">startVideo</a> 方法代替</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">videoSource</td><td>渲染标识串，通过 <a class="el" href="class_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> 的 <a class="el" href="class_j_c_media_channel_participant.html#abd8eb16944b6974fee7fb82e5144b393">getRenderId</a> 方法和 <a class="el" href="class_j_c_call_item.html">JCCallItem</a> 的 <a class="el" href="class_j_c_call_item.html#a0092043606aa09c823e6f4aee9b58fc9">getRenderId</a> 方法可以得到 </td></tr>
    <tr><td class="paramname">renderType</td><td>渲染模式：<ul>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga3d4e0c37a074d813ff1701f250b3831da536c2612409e34fbf614a5f22a947f4b">JCMediaDeviceRenderModeFullScreen</a> : 铺满窗口</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga3d4e0c37a074d813ff1701f250b3831da2b7b398f7d45b52fc17d4d9c552ba1a2">JCMediaDeviceRenderModeFullContent</a> : 全图像显示，会有黑边</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga3d4e0c37a074d813ff1701f250b3831da23d50f1ef4ea132ce06adbf795cf89f3">JCMediaDeviceRenderModeFullAuto</a> : 自适应 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd><a class="el" href="class_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> 对象 </dd></dl>

</div>
</div>
<a id="a7606984cdfd5de27d53399304eee67bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7606984cdfd5de27d53399304eee67bf">&#9670;&nbsp;</a></span>startVideoFile()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool JCMediaDevice::startVideoFile </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>开启视频文件作为视频输入源</p>
<dl class="section note"><dt>注解</dt><dd>文件和摄像头作为视频输入源只能存在一种，如果当前摄像头已开启的话会关闭摄像头</dd></dl>
<dl class="section return"><dt>返回</dt><dd>调用是否成功，存在以下两种场景：<ul>
<li>true：正常执行调用流程<ul>
<li>若调用此方法时文件视频源已开启，则不会收到回调</li>
<li>若调用此方法时文件视频源还未开启，则会收到 <a class="el" href="class_j_c_media_device_callback.html#a2e1d495e5443274eba03c0962f6c338f">onCameraUpdate</a> 回调</li>
</ul>
</li>
<li>false：调用失败，不会收到回调 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a007283dc73188577ae32b50849d3d3fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a007283dc73188577ae32b50849d3d3fd">&#9670;&nbsp;</a></span>stopAudio()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool JCMediaDevice::stopAudio </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>停止音频</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000006">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，在通话挂断时或者离开频道时，内部会自动调用此方法来停止音频</dd></dl>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：正常执行调用流程</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a201fd2352117c7fbdc03ef10837fc701"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a201fd2352117c7fbdc03ef10837fc701">&#9670;&nbsp;</a></span>stopCamera()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool JCMediaDevice::stopCamera </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>关闭摄像头</p>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：正常执行调用流程，存在以下两种场景：<ul>
<li>若调用此方法前摄像头已打开，会收到 <a class="el" href="class_j_c_media_device_callback.html#a2e1d495e5443274eba03c0962f6c338f">onCameraUpdate</a> 通知</li>
<li>若调用此方法前摄像头未打开，不会收到通知</li>
</ul>
</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a2db87561046eedda073d2fd52b8adce8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2db87561046eedda073d2fd52b8adce8">&#9670;&nbsp;</a></span>stopVideo()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void JCMediaDevice::stopVideo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> *&#160;</td>
          <td class="paramname"><em>canvas</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>停止视频渲染</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，一对一通话建议使用 <a class="el" href="class_j_c_call_item.html#a8d6f702c5e477f60df2e671e9392ce76">stopSelfVideo</a> 和 <a class="el" href="class_j_c_call_item.html#a1c58b54ed0f4aac1bef8383ede0f7651">stopOtherVideo</a> 方法代替，频道建议使用 <a class="el" href="class_j_c_media_channel_participant.html#a5076a035465e7f5c307679a6bf60fb8c">stopVideo</a> 方法代替</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">canvas</td><td><a class="el" href="class_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> 对象，由 <a class="el" href="class_j_c_media_device.html#a148a565d8a6204ca69f3d45c203f22e3">startVideo</a> 和 <a class="el" href="class_j_c_media_device.html#a9369379c0d753bf34923ab2618ecb90e">startCameraVideo</a> 返回 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a9c6ff0dba1b9f665e530250d01a938fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c6ff0dba1b9f665e530250d01a938fc">&#9670;&nbsp;</a></span>stopVideoFile()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool JCMediaDevice::stopVideoFile </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>关闭逐帧采集画面</p>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：正常执行调用流程，存在以下两种场景：<ul>
<li>若调用此方法时文件视频源已关闭，不会收到回调</li>
<li>若调用此方法时文件视频源未关闭，则会收到 <a class="el" href="class_j_c_media_device_callback.html#a2e1d495e5443274eba03c0962f6c338f">onCameraUpdate</a> 回调</li>
</ul>
</li>
<li>false：调用失败，不会收到回调 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a0716deb7c816c605444f2bb3202e9ef5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0716deb7c816c605444f2bb3202e9ef5">&#9670;&nbsp;</a></span>switchCamera()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool JCMediaDevice::switchCamera </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_j_c_media_device_camera.html">JCMediaDeviceCamera</a>&#160;</td>
          <td class="paramname"><em>camera</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>切换摄像头</p>
<p>调用此方法时需要保证摄像头已打开并且摄像头数大于0，否则将直接返回 false</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">camera</td><td>摄像头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：正常执行调用流程<ul>
<li>摄像头个数为1，不会收到回调</li>
<li>摄像头个数大于1，会收到 <a class="el" href="class_j_c_media_device_callback.html#a2e1d495e5443274eba03c0962f6c338f">onCameraUpdate</a> 通知</li>
</ul>
</li>
<li>false：调用失败，不会收到回调 </li>
</ul>
</dd></dl>

</div>
</div>
<h2 class="groupheader">类成员变量说明</h2>
<a id="a4b7f9572f2653dafb5c69c96f90b5ba5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b7f9572f2653dafb5c69c96f90b5ba5">&#9670;&nbsp;</a></span>audioIntput</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_j_c_media_device_audio.html">JCMediaDeviceAudio</a> JCMediaDevice::audioIntput</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>默认音频输入 </p>

</div>
</div>
<a id="aa580c277cc88cf5707c2d5bcd71ab464"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa580c277cc88cf5707c2d5bcd71ab464">&#9670;&nbsp;</a></span>audioOutput</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_j_c_media_device_audio.html">JCMediaDeviceAudio</a> JCMediaDevice::audioOutput</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>默认音频输出 </p>

</div>
</div>
<a id="adb6f8b7d45ef32a45cfa5b8f70d55ccb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb6f8b7d45ef32a45cfa5b8f70d55ccb">&#9670;&nbsp;</a></span>defaultCamera</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_j_c_media_device_camera.html">JCMediaDeviceCamera</a> JCMediaDevice::defaultCamera</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>默认摄像头 </p>

</div>
</div>
<a id="a6cb2c591dc1ab517a2e40a0465dfbd54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cb2c591dc1ab517a2e40a0465dfbd54">&#9670;&nbsp;</a></span>screenshareWindow</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_j_c_media_device_window.html">JCMediaDeviceWindow</a> JCMediaDevice::screenshareWindow</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>默认屏幕分享窗口 </p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>SDK/all/include/<a class="el" href="_j_c_media_device_8h_source.html">JCMediaDevice.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者 &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>
